//
//  NetworkManager.swift
//  haiTwitter
//
//  Created by mohen on 15/3/10.
//  Copyright (c) 2015年 mohen. All rights reserved.
//

import Foundation
import SimpleNetwork

///  全局的网络访问接口 - 单例
///  用来隔离第三方框架和应用程序之间的网络访问
class NetworkManager {
    
    /* 
    单例的概念:
    1. 内存中有唯一的实例
    2. 提供唯一的全局访问接口
    */
    // let 是定义常量，而且在 swift 中，let 是线程安全的
    private static let instance = NetworkManager()
    
    class var sharedManager: NetworkManager {
        return instance
    }
    
    // 定义了一个类的完成闭包类型
    typealias Completion = (ressult: AnyObject?, error: NSError?) -> ()
    
    func requestJSON(method: HTTPMethod, _ urlString: String, _ params: [String: String]?, completion: Completion) {
        
        net.requestJSON(method, urlString, params: params, completion: completion)
    }
    ///  全局的一个网络框架实例，本身也只会被实例化一次
    private let net = SimpleNetwork()
}